﻿
using Mes.Application.DTO.Inputs.Quality;
using Mes.Application.DTO.Results.Quality;
using Mes.Domain.BoundedContext;

namespace Mes.Application.Services.Quality
{
    public interface ISamplePlanService
    {
        /// <summary>
        /// 添加采样计划
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task AddSamplePlanAsync(SamplePlanAddingInput input);

        /// <summary>
        /// 编辑采样计划
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task UpdateSamplePlanAsync(SamplePlanUpdatingInput input);

        /// <summary>
        /// 删除采样计划
        /// </summary>
        /// <param name="samplePlanIds"></param>
        /// <returns></returns>
        Task DeleteSamplePlanAsync(int[] samplePlanIds);

        /// <summary>
        /// 通过采样计划id查询采样计划
        /// </summary>
        /// <param name="samplePlanId"></param>
        /// <returns></returns>
        Task<SamplePlanResult> GetSamplePlanByIdAsync(int samplePlanId);

        /// <summary>
        /// 分页查询所有采样计划，按照planId排序
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedItemsData<SamplePlanResult>> GetSamplePlansAsync(GettingSamplePlanPagedInput input);
    }
}
